import pandas as pd

import PD.PdUtil

if __name__ == '__main__':
    # df = pd.read_excel("/temp/端口拥塞.xlsx")
    # t = pd.read_csv(r"D:\家宽\bras.csv", dtype=str)
    # df = df.merge(t, left_on='网元名称', right_on='OLT网元名称', how='left')
    # PD.PdUtil.to_csv("/temp/端口拥塞.csv", df)
    df = pd.read_csv("/temp/端口拥塞.csv", dtype=str)
    # 将 'datetime' 列转换为 pandas 的 datetime 类型
    df['告警发生时间'] = pd.to_datetime(df['告警发生时间'])

    # 方法一：使用 dt.floor 函数
    df['告警发生时间(分)'] = df['告警发生时间'].dt.floor('min')
    # 根据 'BRAS1_ip' 和 '告警发生时间(分)' 列分组，对 'OLT_IP' 去重后统计数量，并将结果广播到每一行
    df['同bras同分钟oltip数'] = df.groupby(['BRAS1_ip', '告警发生时间(分)'])['OLT_IP'].transform('nunique')
    PD.PdUtil.to_csv("/temp/端口拥塞.csv", df)
